package imports;

import java.io.*;
import java.text.SimpleDateFormat;
import java.util.*;

import org.jdom.*;
import org.jdom.input.*;
import org.jdom.output.*;

import dto.DTOItemListaDePrecios;
import dto.DTOListaDePrecios;
import dto.DTOMarca;
import dto.DTONacionalidad;
import dto.DTOProducto;
import dto.DTOProveedor;
import dto.DTOSKF;


public class ImportListaPrecios {

	public DTOListaDePrecios importarListaDePrecios(String ubicacion) {
	    DTOListaDePrecios listaDePrecios = new DTOListaDePrecios(); 
		try {
	         SAXBuilder builder=new SAXBuilder(false); 
	         Document doc=builder.build("C:\\nuevo.xml");
		 	SimpleDateFormat formateador;
			formateador = new SimpleDateFormat("dd/mm/yyyy");

	         Element raiz=doc.getRootElement();

	         //System.out.println("El codigo de la lista es : " + raiz.getAttributeValue("codigo"));
	         listaDePrecios.setNumero(raiz.getAttributeValue("codigo"));
	         
	         
	         //System.out.println("La fecha de inicio es: " + raiz.getAttributeValue("fechainicio"));
	         listaDePrecios.setFechaInicio(formateador.parse(raiz.getAttributeValue("fechainicio")));
	     
	         
	         //listaDePrecios.setFecha(new Date(raiz.getAttributeValue("fecha")));
	         
	         //System.out.println("La  fecha de fin es: " + raiz.getAttributeValue("fechafin"));
	         listaDePrecios.setFechaFin(formateador.parse(raiz.getAttributeValue("fechafin")));
	     	
	         System.out.println("El tipo de lista es: " + raiz.getAttributeValue("tipo"));
	         listaDePrecios.setTipoDeLista(raiz.getAttributeValue("tipo"));
	         
	         System.out.println("+++++++++ ITEMSSSS");
	         
	         List items=raiz.getChildren("item");
	         System.out.println("Formada por:"+items.size()+" items");
	         Iterator i = items.iterator();
	         
	         Set<DTOItemListaDePrecios> elementos = new HashSet<DTOItemListaDePrecios>();
	         DTOItemListaDePrecios itemListaDePrecios;
	         DTOProducto dtoProducto;
	         DTOMarca marca;
	         DTONacionalidad nacionalidad;
	         DTOSKF skf;
	         while (i.hasNext()){
	             itemListaDePrecios = new DTOItemListaDePrecios();
	             dtoProducto = new DTOProducto();
	             marca= new DTOMarca();
	             nacionalidad = new DTONacionalidad();
	             skf =  new DTOSKF();
	             
	        	 Element e= (Element)i.next();
	             Element item =e.getChild("producto"); 
	             Element producto = item.getChild("SKF");
	             //System.out.println("     "+producto.getText());
	             skf.setCodigo(producto.getText());
	             
	             
	             producto = item.getChild("nacionalidad");
	             //System.out.println("     "+producto.getText());
	             nacionalidad.setNombre(producto.getText());
	             
	             producto = item.getChild("marca");
	             //System.out.println("     "+producto.getText());
	             marca.setNombre(producto.getText());

	             dtoProducto.setMarca(marca);
	             dtoProducto.setNacionalidad(nacionalidad);
	             dtoProducto.setSkf(skf);
	             itemListaDePrecios.setProducto(dtoProducto);

	             item =e.getChild("precio"); 
	             //System.out.println("     "+item.getText());
	             itemListaDePrecios.setPrecio(Double.valueOf(item.getText()));
	             
	             item =e.getChild("stock"); 
	             //System.out.println("     "+item.getText());
	             itemListaDePrecios.setStock(Integer.valueOf(item.getText()));

	             
	             item =e.getChild("stockDescuento"); 
	             //System.out.println("     "+item.getText());
	             //System.out.println("-------------------------------------");
	             itemListaDePrecios.setStockDescuento(Integer.valueOf(item.getText()));
	             
	             item =e.getChild("descuento");
	             itemListaDePrecios.setPorcentaje(Float.valueOf(item.getText())/100);
	            
	             elementos.add(itemListaDePrecios);
	         }
	         listaDePrecios.setItems(elementos);

	     }catch (Exception e){
	         e.printStackTrace();
	         listaDePrecios= null;
	      }
	     return listaDePrecios;

	}

}

